import i18n from "i18next";
import { initReactI18next } from "react-i18next";
import * as Localization from "expo-localization";

import en from "@/assets/locales/en-us.json";
import zh from "@/assets/locales/zh-cn.json";

const resources = {
  en: {
    translation: en,
  },
  zh: {
    translation: zh,
  },
};

// 确保返回值为 string 类型
export const getDeviceLanguage = (): string => {
  const locales = Localization.getLocales();
  if (Array.isArray(locales) && locales.length > 0) {
    return locales[0].languageCode || "en"; // 如果 languageCode 为空，回退到 'en'
  }
  return "en";
};

i18n.use(initReactI18next).init({
  resources, // 初始化资源
  lng: getDeviceLanguage(), // 使用设备的语言
  fallbackLng: "en", // 默认语言
  interpolation: {
    escapeValue: false, // 不转义变量
  },
});

export default i18n;
